Before the widespread use of caching in the Internet, an item of content requested by a client was likely provided by the original content server (the source of the content). The content source and the client were typically located at a substantial distance from each other, which often led to slow response times, low bandwidths, high loss rates, and lack of scalability. Response times, bandwidths, and loss rates could also be significantly affected when multiple clients attempted to request an item from the content source at the same time.
Different forms of caching—such as content delivery networks—have helped to overcome these problems for the most part. Generally, content delivery networks place servers nearer to clients (e.g., at the edges of networks). Items of content are replicated and cached at each of the servers. Caching of replicated content on servers closer to clients has resulted in a number of improvements, including reduced response times, higher bandwidths, lower loss rates, improved scalability, and reduced requirements for network (backbone) resources.
Content delivery networks work well when the size of the content is relatively small in comparison to the size of the caches. For example, a Web page is generally much less than a megabyte in size. As such, this kind of content can be practically replicated at each server. Multiple instances of Web content can be stored on each server without the need for substantial memory resources, or without consuming a significant portion of available memory.
However, caching can be problematic when the content includes multimedia data, which can be large in size as well as long in duration. Even a large cache can hold only a few items of multimedia content before getting filled. For example, a video of DVD (digital video disk) quality may be up to 4.7 gigabytes (GB) in size and up to two hours long (based on Moving Picture Expert Group-2 compression). Consequently, a 50 GB cache can hold only about ten DVD-quality videos. Thus, replicating a large number of DVD-quality videos and storing copies at servers closer to clients is not a practical solution for multimedia data. Memories would need to be very large, or only a small number of videos could be stored. On the other hand, storing large items of multimedia content only at a central source or only at a limited number of servers reintroduces the problems mentioned above.
Accordingly, a method and/or system for delivering large items of media content without the attendant problems discussed above would be desirable.